package edu.upc.galaxy.dao;

import edu.upc.galaxy.dao.PersonaDAO;
import edu.upc.galaxy.entity.PersonaENTITY;
import java.sql.SQLException;
import java.util.List;
import org.hamcrest.core.Is;
//import org.hsqldb.HsqlException;
import org.junit.*;

public class PersonaDAOTest {
    
    PersonaDAO personaDAO;
    
    public PersonaDAOTest() {
    }

    @BeforeClass
    public static void setUpClass() throws Exception {
    }

    @AfterClass
    public static void tearDownClass() throws Exception {
    }
    
    @Before
    public void setUp() {
        personaDAO = new PersonaDAO();
    }
    
    @After
    public void tearDown() {
    }
    
    @Test
    public void Insertar_UsuarioConTodosLosParametros_IdNoEsNulo() {
        PersonaENTITY usuario = new PersonaENTITY();
        //usuario.setDueno(Dueno.TRUE);
        usuario.setNombre("Roberto Carranza");
        usuario.setCorreo("rcarranza@galaxy.com");
        usuario.setDocumento ("22559430");
        usuario.setCelular ("98564892");
        Integer id = personaDAO.insertar(usuario);
        
        Assert.assertNotNull(id);
    }
    
    @Test
    public void Insertar_UsuarioConParametrosIncompleto_IdEsNulo() {
        PersonaENTITY usuario = new PersonaENTITY();
     
       Integer id = personaDAO.insertar(usuario);
        Assert.assertNull(id);
    }
    
    
     @Test
    public void Actualizar_UsuarioConTodosLosParametros_NoLanzaExcepcion() {
        PersonaENTITY usuario = new PersonaENTITY();
        usuario.setCodpersona(1);
        usuario.setNombre("Roberto Carranza");
        usuario.setCorreo("rcarranza@galaxy.com");
        usuario.setDocumento ("22559430");
        usuario.setCelular ("98564892");
        try{
        personaDAO.actualizar(usuario);
        }catch(Exception e )        
        {
        Assert.fail("Metodo lanzo excepcion"+ e.getMessage());
        
        }
    }
    
    @Test(expected=Exception.class )
    public void Actualizar_UsuarioConParametrosIncompleto_LanzaExcepcion() throws Exception {
        PersonaENTITY usuario = new PersonaENTITY();
     
        personaDAO.actualizar(usuario);
         
    }
    
    @Test
    public void Eliminar_UsuarioConTodosLosParametros_NoLanzaExcepcion() {
        PersonaENTITY usuario = new PersonaENTITY();
        usuario.setCodpersona(2);
        usuario.setNombre("Roberto Carranza");
        usuario.setCorreo("rcarranza@galaxy.com");
        usuario.setDocumento ("22559430");
        usuario.setCelular ("98564892");
        try{
        personaDAO.eliminar(usuario);
        }catch(Exception e )        
        {
        Assert.fail("Metodo lanzo excepcion"+ e.getMessage());
        
        }
    }
     
    
    @Test (expected=Exception.class )
    public void Eliminar_UsuarioConParametrosIncompleto_LanzaExcepcion() throws Exception 
    {
        PersonaENTITY usuario = new PersonaENTITY();
     
        personaDAO.eliminar(usuario);
    }
    
    @Test 
    public void Buscar_Usuario_DevuelveMasDeunRegistro() throws Exception 
    {
 //     List<Persona> listaUsuario= personaDAO.buscar();
      
   //   assert(listaUsuario.size()>0);
    }
}
